package orm

import "database/sql"

/*
   1, 定义注册器 接口
   2，自定义orm必须实现注册器接口
 */

// orm 接口
type OrmInfuraInter interface {
	//查询
	Query(sql string,params []interface{})*sql.Rows
	//插入
	Insert(sql string,params interface{})int
	//更新
	Update(sql string,params interface{})bool
	//删除
	Delete(sql string,params interface{})bool
}

var OrmMap map[string]OrmFunc

func init(){
	OrmMap=make(map[string]OrmFunc)
	OrmMap["basic"]=newBasicOrmFunc()
	OrmMap["gorm"]=newGorm()
}

//暴露到SqlSessionFactory的方法，执行此方法打开数据库链接
type OrmFunc func(userName string,passWord string,url string,database string) OrmInfuraInter

func GetOrm(name string)OrmFunc{
	if orm,ok := OrmMap[name];ok{
		return orm
	}
	return OrmMap["basic"]
}